﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _05原型设计模式
{
    public abstract class StudentPrototype
    {
        public string  Name { get;  }
        public StudentPrototype(string name)
        {
            Name=name;
        }
        public  abstract StudentPrototype Clone();
    }
    public class Student : StudentPrototype
    {
        public Student(string name) : base(name)
        {
        }

        public override StudentPrototype Clone()
        {
            //浅拷贝
            //值类型成员：全都复制一份，并且搞一份新的。
            //引用类型：只是复制其引用，并不复制其对象。
            return (StudentPrototype)this.MemberwiseClone();
        }
    }
}
